package cc.linker.steplink.crm.merchant.dao.mall;

import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

public interface MallsMapper {
    Map<String, Object> getMallInfo(Map<String, Object> param);

    String getCheckStatus(Map<String, Object> param);

    void openMall(Map<String, Object> param);

    void saveMallInfo(Map<String, Object> param);

    List<Map<String, Object>> goodsList(Map<String, Object> param);

    void changeStatus(@Param(value = "goodsIds") Long[] goodsIds, @Param(value = "goodsStatus") Integer goodsStatus);

    Map<String, Object> getGoodsById(Long goodsId);

    List<Map<String, Object>> getSkuById(Long goodsId);

    List<Map<String, Object>> getSpecById(Long goodsId);

    List<Map<String, Object>> getGoodsListStatus(Long[] goodsIds);

    List<Map<String, Object>> mallsGoodsList(Map<String, Object> param);

    Map<String, Object> mallInfoById(Integer id);

    Integer getMallId(Map<String, Object> map);

    Map<String, Object> getOrgIdAndCustomerIdByGoodsId(Long goodsId);

    Map<String, Object> getGoodsCount(@Param(value = "orgId") String orgId,@Param(value = "customerId") String customerId);

    Map<String, Object> getSalerNum(@Param(value = "orgId") String orgId,@Param(value = "customerId") String customerId);

    int getIfSelfGoods(Map<String, Object> param);

    int getIfExistGoods(Map<String, Object> param);

    void changeGoodsStatusByMallsGoodsId(@Param(value = "goodsIds") Long[] goodsIds,@Param(value = "mallsInvalid") String mallsInvalid,@Param(value = "mallsInvalidType") Integer mallsInvalidType);

    void changeGoodsStatusByGoodsId(@Param(value = "goodsIds") List<Long> goodsIds,@Param(value = "mallsInvalid") String mallsInvalid,@Param(value = "mallsInvalidType") Integer mallsInvalidType);

    List<Map<String, Object>> getSalerGoodsList(Long goodsId);

    Map<String, Object> getSkuInfoByMallsSkuIdAndGoodsId(@Param(value = "mallsSkuId") Long mallsSkuId,@Param(value = "goodsId")  Long goodsId);

    void updateSalerGoods(Map<String, Object> temp);

    List<Map<String, Integer>> getCategoryList();

    void changeGoodsStatusDownByMallsGoodsId(@Param(value = "goodsIds") Long[] goodsIds);

    String getClassList(Integer classificationId);

    String getOrgIds();

    void changeGoodsStatusMarksByMallsGoodsId(@Param(value = "goodsIds") Long[] goodsIds);

    List<Map<String, Object>> centerMallsList(Map<String, Object> param);

    List<String> getLinkerOrgList();

    void mallsGoodsChangeHot(@Param(value = "goodsId") String goodsId);

    void handleTopSort(@Param(value = "goodsId") String goodsId,@Param(value = "mallsGoodsTopOrder") Integer mallsGoodsTopOrder);

    void handleNormalSort(@Param(value = "goodsId") String goodsId, @Param(value = "sort") Integer sort);

    void handleOtherGoodsTopSort(String goodsId);

    void handleOtherGoodsNormalSort(String goodsId);

    Double getLinkTakeByOrgId(String orgId);

    List<Map<String, Object>> getGoodsAmountList(Long[] goodsIds);
}
